package tryonce.service;

import tryonce.dao.StoreDao;
import tryonce.entry.Store;

import java.util.ArrayList;
import java.util.List;

public class StoreService {
    private StoreDao storeDao = new StoreDao();
    private List<Store> shoppingcart = new ArrayList<>();

    //1.添加商品
    public boolean add(Store store) {
        return storeDao.add(store);
    }

    //2.查询商品
    public void queryAll() {
        System.out.println("编号\t\t名称\t\t价格\t\t颜色\t\t尺寸\t\t数量");
        for (Store store : storeDao.getAll()) {//遍历取值
            System.out.println(store.getId() + "\t" + store.getName() + "\t" + store.getPrice() + "\t" + store.getColor() + "\t" + store.getSize() + "\t" + store.getNum());
        }
    }

    //3.查看指定编号商品
    public void queryById(Integer id) {
        Store store = storeDao.findById(id);
        if (store != null) {
            System.out.println("编号\t\t名称\t\t价格\t\t颜色\t\t尺寸\t\t数量");
            System.out.println(store.getId() + "\t" + store.getName() + "\t" + store.getPrice() + "\t" + store.getColor() + "\t" + store.getSize() + "\t" + store.getNum());
        }else {
            System.out.println("没有此商品");
        }
    }

    //4.添加到购物车
    public String addToCart(Integer id, Integer num) {
        Store store = storeDao.findById(id);
        if (store != null) return"商品不存在";
        if (store.getNum() < num) return "库存不足";

        //检查购物车是否已有
        for (Store cartItem : shoppingcart) {
            if (cartItem.getId().equals(id)) {
                cartItem.setNum(cartItem.getNum() + num);
                return "添加成功";
            }
        }
        //购物车没有
        shoppingcart.add(new Store(store.getId(), store.getName(), store.getPrice(),
                store.getColor(), store.getSize(), num));
                return "添加成功";
    }

    //5.查看购物车
    public void showCart() {
        System.out.println("编号\t\t名称\t\t价格\t\t数量\t\t小计");
        double total = 0;
        for (Store store : shoppingcart) {
            System.out.println(store.getId() + "\t" + store.getName() + "\t" + store.getPrice() + "\t" + store.getNum() + "\t" + store.getNum() * store.getPrice());
            total += store.getNum() * store.getPrice();
        }
        System.out.println("总价：" + total);

    }
}
